package com.example.annotation;

import java.lang.annotation.*;

/**
 * 自定义字段注解，用于自动建表
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface TableColumn {
    
    /**
     * 字段名称（数据库列名）
     */
    String value() default "";
    
    /**
     * 字段类型（如：VARCHAR, INT, BIGINT, DATETIME等）
     */
    String type() default "VARCHAR";
    
    /**
     * 字段长度
     */
    int length() default 255;
    
    /**
     * 小数位数（用于DECIMAL类型）
     */
    int scale() default 0;
    
    /**
     * 是否允许为空
     */
    boolean nullable() default true;
    
    /**
     * 默认值
     */
    String defaultValue() default "";
    
    /**
     * 字段注释
     */
    String comment() default "";
    
    /**
     * 是否为主键
     */
    boolean primaryKey() default false;
    
    /**
     * 是否自增
     */
    boolean autoIncrement() default false;
    
    /**
     * 是否创建索引
     */
    boolean index() default false;
    
    /**
     * 是否唯一索引
     */
    boolean unique() default false;
}
